#ifndef BUILDRENDERER_H
#define BUILDRENDERER_H

#include "utils.h"

#include <core/renderer.h>
#include <core/volume.h>
#include <core/integrator.h>
#include <core/sampler.h>

#include <Render/RenderSettings.h>

Renderer *getRenderer( FnKat::Render::RenderSettings &renderSettings,
                       FnKat::FnScenegraphIterator rootIt,
                       BasicSettings* basicSettings);

Sampler *getSampler( FnKat::Render::RenderSettings &renderSettings,
                     const string &samplerType,
                     const FnKat::GroupAttribute &samplerParamsAttr,
                     const Film *film, const Camera *camera );

SurfaceIntegrator *getSurfaceIntegrator( FnKat::Render::RenderSettings &renderSettings,
                                         const string &type,
                                         const FnKat::GroupAttribute &surfIntegrParamsAttr );

VolumeIntegrator *getVolumeIntegrator( FnKat::Render::RenderSettings &renderSettings,
                                       const string &type,
                                       const FnKat::GroupAttribute &volIntegrParamsAttr );



#endif // BUILDRENDERER_H
